#ifndef __PDTSCUTIL_H_
#define __PDTSCUTIL_H_

#include <iostream>
#include <map>
#include <vector>
/** ABC INCLUDES **/
#include <saig.h>
#include <abc.h>
#include <aig.h>
#include <abc_global.h>
#include <main.h>
#include <cmd.h>

using namespace std;

/**
 * Usage:
 * ======
 * string * pStrIn = new string[Abc_NtkPiNum(pNtk)];
 * string * pStrOut = new string[Abc_NtkPoNum(pNtk)];
 * string * pLatch = new string[Abc_NtkLatchNum(pNtk)];
 * PDTAbc_GetIo(pStrIn, pStrOut, pLatch, pNtk);
 */
void PDTAbc_GetIo(string * pStrIn, string * pStrOut, string * pLatchOut, Abc_Ntk_t * pNtk);

/**
 * Usage:
 * ======
 * map <string, int> & mapPi, & mapPo, & mapLatch;
 * PDTAbc_NtkXValueSimulate(pNtk, nFrame, mapPi, mapPo, mapLatch);
 */
void PDTAbc_NtkXValueSimulate(Abc_Ntk_t * pNtk, int nFrame, multimap<string, int> & mapPi, multimap< string, vector<int> > & mapPo, multimap<string, int> & mapLatch); 

#endif
